import java.util.Arrays;
import java.util.Scanner;


public class Test {
    //幸运的袋子
    import java.util.*;
    public class Main{
        public static void main(String[]args){
            Scanner sc=new Scanner(System.in);
            int n=sc.nextInt();
            int[]a=new int[n];
            for(int i=0;i<n;i++){
                a[i]=sc.nextInt();
            }
            Arrays.sort(a);
            System.out.println(count(a,n,0,0,1));
        }
        //计算幸运袋子数
        //从pos位置开始遍历
        public static int count(int []a,int n,int pos,int sum,int multi){
            int count =0;//计数
            for(int i=pos;i<n;i++){
                sum+=a[i];
                multi*=a[i];
                if(sum>multi){//此时是幸运袋子
                    count=count+1+count(a,n,i+1,sum,multi);//count+1因为当前sum>multi至少有一个幸运袋子
                }else if(a[i]==1){//数组中有多个1时
                    count=count+count(a,n,i+1,sum,multi);//1和任何数的和都大于1任何数的积
                }else{
                    break;//此次递归结束
                }
                sum=sum-a[i];
                multi=multi/a[i];
                while(i<n-1&&a[i]==a[i+1]){//拥有相同号码的球是无区别的
                    i++;
                }
            }
            return count;

        }
    }
}
